package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("事件上报 DTO")
public class ReportEventTreatmentDto extends BaseDto {
    @ApiModelProperty(value = "id", required = true)
    Long id;
    @ApiModelProperty(value = "事件处理方式:0直接处理,1分配处理,2报河长办处理,3报上级河长处理", required = true)
    Integer treatmentType;
    @ApiModelProperty("事件处理行政区划id")
    @Size(max = 85, message = "treatmentAreaId最大85字符")
    String treatmentAreaId;
    @ApiModelProperty("事件处理行政区划名称")
    @Size(max = 255, message = "treatmentAreaName最大255字符")
    String treatmentAreaName;
    @ApiModelProperty("事件处理机构id")
    Long treatmentOrgId;
    @ApiModelProperty("事件处理机构名称")
    @Size(max = 55, message = "treatmentOrgName最大55字符")
    String treatmentOrgName;
    @ApiModelProperty("事件处理后照片")
    @Size(max = 1255, message = "treatmentPostPics最大1255字符")
    String treatmentPostPics;
    @ApiModelProperty("事件处理河段id")
    Long treatmentReachId;
    @ApiModelProperty("事件处理河段名称")
    @Size(max = 55, message = "treatmentReachName最大55字符")
    String treatmentReachName;
    @ApiModelProperty("事件处理人员id")
    Long treatmentUserId;
    @ApiModelProperty("事件处理人员角色")
    @Size(max = 1, message = "treatmentUserJob最大55字符")
    String treatmentUserJob;
    @ApiModelProperty("事件处理人员名称")
    @Size(max = 55, message = "treatmentUserName最大55字符")
    String treatmentUserName;
    @ApiModelProperty("事件处理备注")
    @Size(max = 55, message = "treatmentMemo最大55字符")
    String treatmentMemo;
    @ApiModelProperty("结果反馈")
    @Size(max = 255, message = "resultFeedback最大255字符")
    String resultFeedback;
    @ApiModelProperty("事件进度(2结案)")
    Integer state;
    @ApiModelProperty("事件处理时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date treatmentDate;
    @ApiModelProperty("建立者id")
    Long createId;
    @ApiModelProperty("创建时间")
    Date dateCreated;
    @ApiModelProperty("更新时间")
    Date dateUpdated;

    /**
     * 当前处理人所在河道id (报上级河长或河长办用到)
     */
    Long currentTreatmentRiverId;
    /**
     * 当前处理人上级河道id (报上级河长或河长办用到)
     */
    Long parentTreatmentRiverId;
}
